DOTS(Data-Oriented Technology Stack)
#設計 #状態管理 #GUI #宣言的UIの設計レシピ #3D #アーキテクチャ
主にゲーム開発の文脈でのデータ指向型のプログラミングスタイルと、技術スタックの総称
データ、処理、レンダリングを分ける考え方で、ECS(Entity Component System)が基盤となっている
これを読むと全体感が端的につかめる
Unity DOTS
Unity DOTS の概要
データを依存グラフで表現して遅延評価し、かつJITでメモリ最適化を行いつつもキャッシュヒット率を上げるという設計
設計とパフォーマンスが両立する
従来のオブジェクト指向では、ゲームオブジェクトにコンポーネントを取り付けてオブジェクト単位でプログラミングしていた
データ配置に焦点をあててないため、キャッシュミスがよく発生し、CPUによるデータアクセスが遅くなります
「データ指向」のアプローチでは、データ構造が整理されて、キャッシュミスを回避し、データへのアクセスをより効率的かつ高速にします
「DOTS」は、プロジェクトのサイズが大きくなるにつれて、コードの複雑さをより適切に制御します。
「DOTS」用に作成されたコードは、一般的に問題の分離がより優れています。このため、コードのリファクタリング、単体テストの記述、開発者間の作業の分散は、「DOTS」で作業する方が簡単です。
#テスト容易性
DOTSではデータと処理を分けるのがポイント
React, 関数型プログラミング, 宣言的UIと親和性が高い
メモ化やパフォーマンスチューニングの余地が生まれるので、大量のメモリを使うAR, VRのコンテキストで応用しやすい
【Unity】DOTS(ECS)が正式リリースされたので試してみた
koushisa.icon
WIP: https://www.notion.so/DOTS-f68df6fedcc34b5f8290650f64cd1439?pvs=4